package io.robusta.rra.integration.controller.jaxRsController.implementation;
import io.robusta.rra.controller.JaxRsController;
import io.robusta.rra.exception.HttpException;
import io.robusta.rra.representation.Representation;
import io.robusta.rra.representation.implementation.GsonRepresentation;
import io.robusta.rra.representation.implementation.JacksonRepresentation;
import java.util.List;
import java.util.Set;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;
@Path( "jaxrs" )
public class JaxRsControllerImpl extends JaxRsController {
public JaxRsControllerImpl() {
super();
setClientProperty(new MyClientPropertyJaxRs());
}
@POST
@Path("auth")
@Consumes("application/json")
public String getAuth() {
String username = null;
String password = null;
try {
username = getBasicAuthentification()[0];
password = getBasicAuthentification()[1];
} catch (HttpException e) {
// e.printStackTrace();
}
System.out.println("username basic authentification :::: " + username);
System.out.println("password basic authentification :::: " + password);
return "";
}
@POST
@Path("/validate")
// @Consumes("application/json")
public String validateRepresentation(String requestEntity) {
// decomment to override the current representation
// JaxRsController.defaultRepresentation = new JacksonRepresentation();
Representation representation = getRepresentation(requestEntity);
System.out.println("representation " + representation.toString());
System.out.println("Gson representation "
+ (JaxRsController.defaultRepresentation instanceof GsonRepresentation));
System.out.println("Jackson representation "
+ (JaxRsController.defaultRepresentation instanceof JacksonRepresentation));
System.out.println("validate " + validate(requestEntity, "email", "name"));
return representation.toString();
}
@POST
@Path("/agent")
public Response userAgentMethod(String requestEntity, @HeaderParam("user-agent") String userAgentRequest) {
System.out.println("isChrome " + getClientProperty().isChrome(httpHeader));
System.out.println("isFirefox " + getClientProperty().isFirefox(httpHeader));
System.out.println("isTablet " + getClientProperty().isTablet(httpHeader));
System.out.println("isMobile " + getClientProperty().isMobile(httpHeader));
System.out.println("isWebKit " + getClientProperty().isWebKit(httpHeader));
return Response.status(200).entity(userAgentRequest).build();
}
@GET
@Path("header")
public Response getHeader(@HeaderParam("user-agent") String userAgentRequest,
@HeaderParam("connection") String connection) {
MultivaluedMap<String, String> requestHeaders = httpHeader.getRequestHeaders();
Set<String> requestHeaderSet = requestHeaders.keySet();
for (String currentHeader : requestHeaderSet) {
System.out.println(currentHeader);
System.out.println(requestHeaders.get(currentHeader));
}
// List<String> connection = requestHeaders.get( "connection" );
List<String> authorization = requestHeaders.get("authorization");
List<String> userAgent = requestHeaders.get("user-agent");
System.out.println("connection " + connection);
System.out.println("authorization " + authorization);
System.out.println("user-agent " + userAgent);
System.out.println("user-agent request " + userAgentRequest);
return Response.status(200).entity("connection :: " + connection + " -- user-agent :: " + userAgent).build();
}
@Override
public MyClientPropertyJaxRs getClientProperty() {
return (MyClientPropertyJaxRs) super.getClientProperty();
}
}